CMU Course Review
Published:
Offering a review on the courses I took at CMU.
! are the ones that are particularly time consuming for me.
✰ are the ones that are particularly worth taking.
Junior Year
Fall 2025
15-210 Parallel and Sequential Algorithms
16-385 Computer Vision
36-401 Modern Regression
05-391 Designing Human-Centered Software
80-100 Introduction to Philosophy
Sophomore Year
Summer 2025
15-150 Principles of Functional Programming: I found many concepts like sequences, continuation-passing style, and higher-order functions moderately interesting. I was also constantly amazed by how clean the code can be. However, the course sometimes felt more focused on learning the SML language itself, and the emphasis on proving totality and other properties could feel slightly pedantic. The professor was fantastic. Her lectures were so clear and engaging that I attended nearly every one — a first for me at CMU. Overall, it was a rewarding experience. (I spent around 14 hours every week)
67-505 Information Systems Internship: Had to enroll in this class only because I am an international student and need this for my cpt.
Reflection: I spent another summer in Pittsburgh, dealing with the unbearable humid weather while working as a software engineer intern at a local startup. I am incredibly grateful for this opportunity to step into the industry. Thanks to a patient and wonderful mentor, I learned a great deal about system architecture, microservices, and AWS, and I really enjoyed the company culture. Despite this, I found the day-to-day coding itself to be uninteresting. This experience led me to question my career path and reconsider my course choices for the upcoming semester.
Spring 2025
36-226 Introduction to Probability Inference: The professor was nice and I appreciated how the course went deep into the theory behind statistical tests, which I had previously taken for granted. Some topics covered include sampling, estimation, linear regression, and hypothesis testing. A solid review of calculus concepts is recommended. The weekly 7pm recitation with mandatory recitation was not fun though and just sitting there in the classroom to work on problems was not helpful.
21-259 Calculus in 3D: covered stuff like partial differentiation, parametric surfaces and integrals, and the Green-Gauss theorem. It was relatively easy and built on my IB math background, focusing on knowing how to apply concepts rather than why they work.
36-315 Statistical Graphics & Visualization: This was essentially a class on creating graphs using R. I don’t think I will be using some plots we learnt ever in the future. While it was an easy “A,” the workload was slightly higher than I expected. I didn’t find it particularly engaging.
67-272 Application Design and Development: I found the concepts in this class confusing at first and felt it could have been taught more systematically. There should be clearer instructions for assignments. I was lost for half of the lectures, and the tests were equally confusing. The course used Ruby on Rails, which felt a bit outdated and had a weird syntax. In hindsight, however, it was a useful class for getting a general overview of full-stack web application development.
36-350 Statistical Computing: I didn’t find the course content interesting. It was a class on using R for data analysis, and I often felt like I was doing the weekly assignments just for the sake of getting them done. Overall, however, it wasn’t a difficult course.
Reflection: 49 units. I suffered an injury this semester and had surgical procedures throughout, so I chose classes that didn’t require strict attendance. I started the semester thinking I wanted to pursue an additional major in Statistics and Machine Learning, but the stats classes I took were all uninteresting to me. They seemed to be courses where I learned how to solve a problem without understanding why the method worked. At times, it felt like the work could be done by AI, as it was often just a matter of learning syntax. This experience made me question my choice of major again.
Fall 2024
36-225 Introduction to Probability Theory: an introductory probability class, fairly easy overall. The tests were reasonable (not the easiest though) and the lectures were pretty important since they cover a lot of proofs that help you understand the theories. I liked the professor’s way of teaching, extremely efficient and straight to the point.(I spent around 8 hours every week)
21-241 Matrices and Linear Transformation: This class was a frustrating experience for me. The grading scheme is particularly problematic, as it allows no partial credit for small mistakes—a significant issue given the complexity of matrix operations. For example, a minor sign error can result in losing 20% of the exam grade. The course content felt unengaging, and the final exam consisted of 25 multiple-choice questions, which I found unrepresentative of the subject. I don’t believe this exam format effectively evaluates students’ understanding of the material or their mathematical ability in linear algebra. For some reason, the prof refused to give any stats for exams, but I predict that the median class score is a C at the end of the semester. Despite dedicating approximately 9 hours each week to studying, I felt the structure of the course hindered meaningful learning and assessment.
15-150 Principles of Functional Programming: dropped, but the content itself was interesting. The problem is I felt I understood everything in lecture but still didn’t know how to do the homework problems. The OH was not extremely helpful.
36-200 Reasoning with Data: an easy statistics class. (I spent around 3 hours every week)
67-262 Database Design and Development: a database course that started with data querying in SQL (subqueries, windows, triggers…), and then moved on to database design (normalization, functional dependencies…), and noSQL (mongoDB). It was an ok class and Raja was a caring prof. (I spent around 9 hours every week)
99-367 IDEATE: Pragmatic photography: a photography class that teaches you the basics. Would recommend. (I spent around 5 hours for 2 weeks)
94329 Asian Strategies: a fun politics/international relations mini. The class was fast paced with heavy readings, requiring a fair amount of commitment. But I did enjoy everything we covered. (I spent around 6 hours every week)
57337 Sound Recording: a fun music mini. The class was chill with friendly TAs and Prof Riccardo was extremely nice. The homework deadlines were super generous. (I spent around 5 hours every week)
Reflection: I didn’t really enjoy this semester, despite its workload being light (52 units). My study motivation was extremely low and even lower after I dropped 15150, a decision which I regret. I also applied to quite a few companies and got rejected from all. I recall experiencing a lot of self-doubt, missing my parents and friends back home, and feeling homesick for no apparent reasons. I also procrastinated a lot in all of my assignments simply due to a lack of interest in any of the classes (apart from 36225 i guess?). I hated being stuck in Pittsburgh, the consistent rainy weathers, and the 4pm sunsets.
Freshman Year
Summer 2024
✰ 15-213 Introduction to Computer Systems: a low-level systems class taught in C that covers concepts such as assembly language, memory models, network, and concurrent programming. I found this class to be the most engaging CS core I’ve taken so far and I learnt so much from it. The labs were extremely beneficial for understanding the course content, and despite their difficulty, I enjoyed most of them. My favourite was malloc lab, which was rewarding, fun, yet so painful to debug. In order of decreasing difficulty, the labs were: Shell (conceptually hard) > Malloc Final (I died from debugging it) > Cache (starting from scratch was hard) > Proxy (ahhh the first few traces) > Shark File System (thread-level parallelism was hard) > Malloc Checkpoint > Datalab > Bomb (scary) > Attack > CProgramming. The final exam was manageable and the writtens every week helped me a lot with consolidating concepts. In hindsight, the course was worth the effort and extra money paid this summer. (I spent around 25 hours every week)
99-270 Summer Undergraduate Research Apprenticeship: I did chem research in the Kurnikova Lab on computationally driven drug discovery. I was responsible for parametrising files and running molecular dynamics simulations. This experience made me question my choice of research as I did not really enjoy it. (I spent around 5 hours every week)
Reflection: I spent most of the summer in Pittsburgh and flew back home at the end. I’m grateful for this decision as I found that being physically present in 15213 lectures and OH was significantly more beneficial for my learning. I also acquired essential life skills that have enabled me to take care of myself independently, preparing myself for life off-campus. Additionally, I decided to switch to Information Systems after realising that a career in research, which I initially thought would be appealing to me, is not my true calling.
Spring 2024
15-122 Principles of Imperative Computation: a cs core that exposes you to data structures. Concepts such as linked lists, stacks/queues and AVL rotations were interesting to learn, but the others not so much. The labs were okay, with the last few challenging to debug in C and the OH queues for those were around 2-3 hours long. The least enjoyable part of the course were the exams. I experienced stressful time constraints in all of the exams, and for the first exam, I remember leaving nearly 3 pages blank. When reviewing the marks I lost after the exam, I feel like most can be avoided if I just had more time. The median for all exams were in the low 70s and there were no curves for this course. (I spent around 13-15 hours every week)
09-106 Modern Chemistry II: a fair chemistry core that covers thermo, kinetics, equilibrium, acids/bases… The only concept that took a while to understand was pseudo rate law, but the test questions were relatively formulaic. The weekly quizzes (sometimes twice a week) and the 8pm recitations were annoying. Overall a chill class with generous grading. (I spent around 7 hours every week)
73-102 Principles of Microeconomics: an introductory microeconomics class that has a heavy focus on game theory and market competition. The first 1/3 was extremely light as it overlaps with IB economics. The rest is mathy with a lot of calculations and logic. I also found the questions to be highly hypothetical and theoretical with low correlation to real world cases or economic policies, which I enjoyed learning about in high school. Therefore, I wouldn’t classify it as the most engaging or easiest gen-ed, but it did not take up much time for me. (I spent around 5 hours every week)
76-101 Intepretation and Arguments: an extremely easy writing class (depends on the instructor). I have never received such high scores in essays back in high school. I almost feel like I didn’t learn anything new. (I spent around 4 hours every week)
67-250 The Information Systems milieux: a first year IS class that covered the basics of web dev (HTML/CSS, JS), SQL databases, and conceptual topics such as the business aspect of IS. It had a moderate workload and requires consistent effort throughout the semester since there was an essay (case study) and 2 large projects. (I spent around 9 hours every week)
Reflection: This semester was light with only 49 units. I declared a chemistry major on a computational chemistry track. Honestly speaking, I didn’t really enjoy any of the classes I took this semester and questioned a lot about my major choice and career goals.
Fall 2023
! 21-127 Concepts of Mathematics: an introductory course that teaches proof and discrete math. My professor’s median grades for the first two exams were in the 60s. Since I had no prior knowledge of proof-based math, I found the pace of the course to be quite challenging. The weekly problem sets, which only consisted of 5-6 questions, usually took me around three days to complete. I heavily relied on office hours for assistance, but the TAs were overwhelmed with the number of students, so I often didn’t get my questions answered and some concepts remained unclear. I also experienced time constraints during the exams. However, the final was more lenient with time, and I ended up doing much better than the previous tests. (I spent around 17-20 hours every week on this class)
15-112 Fundamentals of programming and CS: an introductory CS course that teaches some basic programming logic in python. I had already grasped most of the course concepts before taking it, but I still found the course to be engaging and rewarding. In my opinion, the course was extremely well-designed, and the TAs were incredibly supportive. My favourite part of the course was the term project, where I wrote around 1000 lines of code exploring some path-finding algorithms in maze generation. The project also made me appreciate many concepts that I had previously underestimated, such as object-oriented programming and top-down designs. (I spent around 6-10 hours every week on this class and around 15-18 hours during TP season)
03-151 Honors Modern Biology: an honours version of an introductory biology class focusing on the molecular aspects of biology, mainly biochem and cellular biology. The class was pretty chill, but we covered a lot of material in depth, such as cytoskeleton and spindle movement. I enjoyed the level of detail we covered in biochemistry and it provided answers to many of the “why” questions I had in high school. Our professor was very knowledgeable in his field, and it was surprising to learn about many cutting-edge advancements in biology that even chat-gpt cannot recognise. (I spent around 4 hours every week if there are no exams and 6-8 hours cramming before each exam)
57-181 Solfege I: an introductory solfege class. Fairly chill and did not require extra time after lectures. The core content was to identify musical intervals and dictate short melodies. Quite helpful in transcribing music in the future. I was planning to take it with Eurthymics I for a music minor, but didn’t get off the waitlist for that class. (I spent around 2-3 hours every week only for the lectures)
38-101 Eureka: discovery & impact: a compulsory class for me to take. Was OK. (I spent around 3-4 hours every week only for the lectures)
Reflection: I only took 43 units this semester, which was supposed to help me adjust to college life easily. However, I found that Concepts was taking much more time than expected. Coming from a relatively chill high school that was much less competitive than CMU, I haven’t established good study habits and struggled with this transition into college. Hopefully, next semester will be better.
Pre-college credits using IB: 21120 Calculus I, 21122 Calculus II, 09105 Modern Chemistry I